package com.ea.api.controller.user;

import com.ea.common.response.JsonResult;
import com.ea.domain.dto.LoginDTO;
import com.ea.domain.dto.UserCreateDTO;
import com.ea.domain.dto.UserUpdateDTO;

/**
 * @author NAME-L
 * @Description 前台用户登录API （用户信息功能接口）
 * @className LoginController
 * @date 2022-12-01 22:15:10
 */
public interface UserInfoApi {

    /**
     * 用户登录
     * @return
     */
    JsonResult userLoginIn(LoginDTO loginDTO);

    /**
     * 用户退出
     * @return
     */
    JsonResult userLoginOut();

    /**
     * 用户注册
     * @return
     */
    JsonResult userRegister(UserCreateDTO createDTO);

    /**
     * 用户注销
     * @return
     */
    JsonResult userWriteOff();

    /**
     * 获取个人信息
     * @return
     */
    JsonResult getUserInfo();

    /**
     * 更新个人信息
     *
     * @return
     */
    JsonResult updateUserInfo(UserUpdateDTO updateDTO);

    /**
     * 修改秘密码
     * @param userId
     * @param oldPassword
     * @param newPassword
     * @return
     */
    JsonResult changePassword(Long userId, String oldPassword, String newPassword);
}
